package org.dezenho.client.RMI;

import java.awt.Point;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.List;
import java.util.Map;

import org.dezenho.client.SO.DezenhoClient;
import org.dezenho.common.RMI.ClientInterface;

@SuppressWarnings("serial")
public class ClientFacade extends UnicastRemoteObject implements ClientInterface{

	public ClientFacade() throws RemoteException {
		super();
	}

	public void apresentaMensagem(String mensagem){
		DezenhoClient.getInstance().getDezenhoTelaClient().apresentaMensagem(mensagem);
	}

	public void apresentaResultadoPartida(Map<String, Integer> pontuacao){
		DezenhoClient.getInstance().getDezenhoTelaClient().apresentaResultadoPartida(pontuacao);		
	}

	public void apresentaResultadoRodada(Map<String, Integer> pontuacao, String acertador){
		DezenhoClient.getInstance().getDezenhoTelaClient().apresentaResultadoRodada(pontuacao, acertador);		
	}

	public boolean atualizaAdivinhador(Integer tempoRestante, Point[] desenho){
		return DezenhoClient.getInstance().getAdivinhador().atualizaAdivinhador(tempoRestante, desenho);
	}

	public Point[] atualizaDesenhista(Integer tempoRestante){
		return DezenhoClient.getInstance().getDesenhista().atualizaDesenhista(tempoRestante);		
	}

	public void atualizaSalaEspera(List<String> jogadoresEspera){
		DezenhoClient.getInstance().getSalaEspera().atualizaSalaEspera(jogadoresEspera);
	}

	public void inicializaAdivinhador(Integer tempoTotal, String palavra, Integer multiplicador){
		DezenhoClient.getInstance().getAdivinhador().inicializaAdivinhador(tempoTotal, palavra, multiplicador);
	}

	public void inicializaDesenhista(Integer tempoTotal, String palavra, Integer multiplicador, Integer idPartida) {
		DezenhoClient.getInstance().getDesenhista().inicializaDesenhista(tempoTotal, palavra, multiplicador, idPartida);
	}

}
